// $ANTLR 3.3 Nov 30, 2010 12:45:30 /home/bartushk/Desktop/antlr/LogoTurtle.g 2011-03-24 18:07:13

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class LogoTurtleLexer extends Lexer {
    public static final int EOF=-1;
    public static final int T__41=41;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__44=44;
    public static final int BLOCK=4;
    public static final int COMMENT=5;
    public static final int NEWLINE=6;
    public static final int WS=7;
    public static final int PENUP=8;
    public static final int PENDOWN=9;
    public static final int BFILL=10;
    public static final int EFILL=11;
    public static final int SETPOS=12;
    public static final int CIRCLE=13;
    public static final int SETPEN=14;
    public static final int FORWARD=15;
    public static final int BACKWARD=16;
    public static final int LEFT=17;
    public static final int RIGHT=18;
    public static final int SETH=19;
    public static final int IFSTAT=20;
    public static final int WHILESTAT=21;
    public static final int IFELSE=22;
    public static final int PRINT=23;
    public static final int TO=24;
    public static final int END=25;
    public static final int ID=26;
    public static final int FLOAT=27;
    public static final int INT=28;
    public static final int MAKE=29;
    public static final int OUTPUT=30;
    public static final int REFOP=31;
    public static final int COMPOP=32;
    public static final int NOT=33;
    public static final int ADD=34;
    public static final int SUB=35;
    public static final int DIV=36;
    public static final int MUL=37;
    public static final int MOD=38;
    public static final int LETTER=39;
    public static final int DIGIT=40;

    // delegates
    // delegators

    public LogoTurtleLexer() {;} 
    public LogoTurtleLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public LogoTurtleLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "/home/bartushk/Desktop/antlr/LogoTurtle.g"; }

    // $ANTLR start "T__41"
    public final void mT__41() throws RecognitionException {
        try {
            int _type = T__41;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:7:7: ( '[' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:7:9: '['
            {
            match('['); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__41"

    // $ANTLR start "T__42"
    public final void mT__42() throws RecognitionException {
        try {
            int _type = T__42;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:8:7: ( ']' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:8:9: ']'
            {
            match(']'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__42"

    // $ANTLR start "T__43"
    public final void mT__43() throws RecognitionException {
        try {
            int _type = T__43;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:9:7: ( '(' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:9:9: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__43"

    // $ANTLR start "T__44"
    public final void mT__44() throws RecognitionException {
        try {
            int _type = T__44;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:10:7: ( ')' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:10:9: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__44"

    // $ANTLR start "COMMENT"
    public final void mCOMMENT() throws RecognitionException {
        try {
            int _type = COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:90:10: ( ';' ( ( '!' .. '~' ) | WS )* )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:90:12: ';' ( ( '!' .. '~' ) | WS )*
            {
            match(';'); 
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:90:16: ( ( '!' .. '~' ) | WS )*
            loop1:
            do {
                int alt1=3;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0>='!' && LA1_0<='~')) ) {
                    alt1=1;
                }
                else if ( (LA1_0=='\t'||LA1_0==' ') ) {
                    alt1=2;
                }


                switch (alt1) {
            	case 1 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:90:17: ( '!' .. '~' )
            	    {
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:90:17: ( '!' .. '~' )
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:90:18: '!' .. '~'
            	    {
            	    matchRange('!','~'); 

            	    }


            	    }
            	    break;
            	case 2 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:90:28: WS
            	    {
            	    mWS(); 

            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMMENT"

    // $ANTLR start "IFELSE"
    public final void mIFELSE() throws RecognitionException {
        try {
            int _type = IFELSE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:92:8: ( 'ifelse' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:92:10: 'ifelse'
            {
            match("ifelse"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IFELSE"

    // $ANTLR start "PENDOWN"
    public final void mPENDOWN() throws RecognitionException {
        try {
            int _type = PENDOWN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:94:9: ( 'pendown' | 'pd' )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0=='p') ) {
                int LA2_1 = input.LA(2);

                if ( (LA2_1=='e') ) {
                    alt2=1;
                }
                else if ( (LA2_1=='d') ) {
                    alt2=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 2, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:94:11: 'pendown'
                    {
                    match("pendown"); 


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:94:21: 'pd'
                    {
                    match("pd"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PENDOWN"

    // $ANTLR start "PENUP"
    public final void mPENUP() throws RecognitionException {
        try {
            int _type = PENUP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:96:7: ( 'penup' | 'pu' )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0=='p') ) {
                int LA3_1 = input.LA(2);

                if ( (LA3_1=='e') ) {
                    alt3=1;
                }
                else if ( (LA3_1=='u') ) {
                    alt3=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 3, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:96:9: 'penup'
                    {
                    match("penup"); 


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:96:17: 'pu'
                    {
                    match("pu"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PENUP"

    // $ANTLR start "FORWARD"
    public final void mFORWARD() throws RecognitionException {
        try {
            int _type = FORWARD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:98:9: ( 'forward' | 'fd' )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0=='f') ) {
                int LA4_1 = input.LA(2);

                if ( (LA4_1=='o') ) {
                    alt4=1;
                }
                else if ( (LA4_1=='d') ) {
                    alt4=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 4, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:98:11: 'forward'
                    {
                    match("forward"); 


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:98:21: 'fd'
                    {
                    match("fd"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FORWARD"

    // $ANTLR start "BACKWARD"
    public final void mBACKWARD() throws RecognitionException {
        try {
            int _type = BACKWARD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:100:10: ( 'back' | 'bk' )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0=='b') ) {
                int LA5_1 = input.LA(2);

                if ( (LA5_1=='a') ) {
                    alt5=1;
                }
                else if ( (LA5_1=='k') ) {
                    alt5=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 5, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:100:12: 'back'
                    {
                    match("back"); 


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:100:19: 'bk'
                    {
                    match("bk"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BACKWARD"

    // $ANTLR start "LEFT"
    public final void mLEFT() throws RecognitionException {
        try {
            int _type = LEFT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:102:6: ( 'left' | 'lt' )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0=='l') ) {
                int LA6_1 = input.LA(2);

                if ( (LA6_1=='e') ) {
                    alt6=1;
                }
                else if ( (LA6_1=='t') ) {
                    alt6=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 6, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:102:8: 'left'
                    {
                    match("left"); 


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:102:15: 'lt'
                    {
                    match("lt"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LEFT"

    // $ANTLR start "RIGHT"
    public final void mRIGHT() throws RecognitionException {
        try {
            int _type = RIGHT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:104:7: ( 'right' | 'rt' )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0=='r') ) {
                int LA7_1 = input.LA(2);

                if ( (LA7_1=='i') ) {
                    alt7=1;
                }
                else if ( (LA7_1=='t') ) {
                    alt7=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 7, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:104:9: 'right'
                    {
                    match("right"); 


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:104:17: 'rt'
                    {
                    match("rt"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RIGHT"

    // $ANTLR start "SETH"
    public final void mSETH() throws RecognitionException {
        try {
            int _type = SETH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:106:6: ( 'setheading' | 'seth' )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0=='s') ) {
                int LA8_1 = input.LA(2);

                if ( (LA8_1=='e') ) {
                    int LA8_2 = input.LA(3);

                    if ( (LA8_2=='t') ) {
                        int LA8_3 = input.LA(4);

                        if ( (LA8_3=='h') ) {
                            int LA8_4 = input.LA(5);

                            if ( (LA8_4=='e') ) {
                                alt8=1;
                            }
                            else {
                                alt8=2;}
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 8, 3, input);

                            throw nvae;
                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 8, 2, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 8, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:106:8: 'setheading'
                    {
                    match("setheading"); 


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:106:21: 'seth'
                    {
                    match("seth"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SETH"

    // $ANTLR start "SETPOS"
    public final void mSETPOS() throws RecognitionException {
        try {
            int _type = SETPOS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:108:8: ( 'setpos' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:108:10: 'setpos'
            {
            match("setpos"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SETPOS"

    // $ANTLR start "CIRCLE"
    public final void mCIRCLE() throws RecognitionException {
        try {
            int _type = CIRCLE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:110:8: ( 'circle' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:110:10: 'circle'
            {
            match("circle"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CIRCLE"

    // $ANTLR start "SETPEN"
    public final void mSETPEN() throws RecognitionException {
        try {
            int _type = SETPEN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:112:8: ( 'setpencolor' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:112:10: 'setpencolor'
            {
            match("setpencolor"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SETPEN"

    // $ANTLR start "BFILL"
    public final void mBFILL() throws RecognitionException {
        try {
            int _type = BFILL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:114:7: ( 'beginfill' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:114:9: 'beginfill'
            {
            match("beginfill"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BFILL"

    // $ANTLR start "EFILL"
    public final void mEFILL() throws RecognitionException {
        try {
            int _type = EFILL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:116:7: ( 'endfill' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:116:9: 'endfill'
            {
            match("endfill"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EFILL"

    // $ANTLR start "PRINT"
    public final void mPRINT() throws RecognitionException {
        try {
            int _type = PRINT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:118:7: ( 'print' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:118:9: 'print'
            {
            match("print"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PRINT"

    // $ANTLR start "MAKE"
    public final void mMAKE() throws RecognitionException {
        try {
            int _type = MAKE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:120:6: ( 'make' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:120:8: 'make'
            {
            match("make"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MAKE"

    // $ANTLR start "WHILESTAT"
    public final void mWHILESTAT() throws RecognitionException {
        try {
            int _type = WHILESTAT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:122:11: ( 'while' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:122:13: 'while'
            {
            match("while"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHILESTAT"

    // $ANTLR start "IFSTAT"
    public final void mIFSTAT() throws RecognitionException {
        try {
            int _type = IFSTAT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:124:8: ( 'if' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:124:10: 'if'
            {
            match("if"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IFSTAT"

    // $ANTLR start "MOD"
    public final void mMOD() throws RecognitionException {
        try {
            int _type = MOD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:126:5: ( 'modulo' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:126:7: 'modulo'
            {
            match("modulo"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MOD"

    // $ANTLR start "TO"
    public final void mTO() throws RecognitionException {
        try {
            int _type = TO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:128:4: ( 'to' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:128:6: 'to'
            {
            match("to"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TO"

    // $ANTLR start "NOT"
    public final void mNOT() throws RecognitionException {
        try {
            int _type = NOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:130:5: ( 'not' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:130:7: 'not'
            {
            match("not"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NOT"

    // $ANTLR start "OUTPUT"
    public final void mOUTPUT() throws RecognitionException {
        try {
            int _type = OUTPUT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:132:8: ( 'output' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:132:10: 'output'
            {
            match("output"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OUTPUT"

    // $ANTLR start "END"
    public final void mEND() throws RecognitionException {
        try {
            int _type = END;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:134:5: ( 'end' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:134:7: 'end'
            {
            match("end"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "END"

    // $ANTLR start "ID"
    public final void mID() throws RecognitionException {
        try {
            int _type = ID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:4: ( ( '_' )* LETTER ( LETTER | DIGIT | '_' )* )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:6: ( '_' )* LETTER ( LETTER | DIGIT | '_' )*
            {
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:6: ( '_' )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0=='_') ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:7: '_'
            	    {
            	    match('_'); 

            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

            mLETTER(); 
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:18: ( LETTER | DIGIT | '_' )*
            loop10:
            do {
                int alt10=4;
                switch ( input.LA(1) ) {
                case 'A':
                case 'B':
                case 'C':
                case 'D':
                case 'E':
                case 'F':
                case 'G':
                case 'H':
                case 'I':
                case 'J':
                case 'K':
                case 'L':
                case 'M':
                case 'N':
                case 'O':
                case 'P':
                case 'Q':
                case 'R':
                case 'S':
                case 'T':
                case 'U':
                case 'V':
                case 'W':
                case 'X':
                case 'Y':
                case 'Z':
                case 'a':
                case 'b':
                case 'c':
                case 'd':
                case 'e':
                case 'f':
                case 'g':
                case 'h':
                case 'i':
                case 'j':
                case 'k':
                case 'l':
                case 'm':
                case 'n':
                case 'o':
                case 'p':
                case 'q':
                case 'r':
                case 's':
                case 't':
                case 'u':
                case 'v':
                case 'w':
                case 'x':
                case 'y':
                case 'z':
                    {
                    alt10=1;
                    }
                    break;
                case '0':
                case '1':
                case '2':
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
                case '9':
                    {
                    alt10=2;
                    }
                    break;
                case '_':
                    {
                    alt10=3;
                    }
                    break;

                }

                switch (alt10) {
            	case 1 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:19: LETTER
            	    {
            	    mLETTER(); 

            	    }
            	    break;
            	case 2 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:26: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;
            	case 3 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:137:32: '_'
            	    {
            	    match('_'); 

            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "INT"
    public final void mINT() throws RecognitionException {
        try {
            int _type = INT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:139:5: ( ( DIGIT )+ )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:139:7: ( DIGIT )+
            {
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:139:7: ( DIGIT )+
            int cnt11=0;
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( ((LA11_0>='0' && LA11_0<='9')) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:139:7: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    if ( cnt11 >= 1 ) break loop11;
                        EarlyExitException eee =
                            new EarlyExitException(11, input);
                        throw eee;
                }
                cnt11++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "INT"

    // $ANTLR start "FLOAT"
    public final void mFLOAT() throws RecognitionException {
        try {
            int _type = FLOAT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:141:7: ( ( DIGIT )+ '.' ( DIGIT )+ )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:141:9: ( DIGIT )+ '.' ( DIGIT )+
            {
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:141:9: ( DIGIT )+
            int cnt12=0;
            loop12:
            do {
                int alt12=2;
                int LA12_0 = input.LA(1);

                if ( ((LA12_0>='0' && LA12_0<='9')) ) {
                    alt12=1;
                }


                switch (alt12) {
            	case 1 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:141:9: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    if ( cnt12 >= 1 ) break loop12;
                        EarlyExitException eee =
                            new EarlyExitException(12, input);
                        throw eee;
                }
                cnt12++;
            } while (true);

            match('.'); 
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:141:20: ( DIGIT )+
            int cnt13=0;
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( ((LA13_0>='0' && LA13_0<='9')) ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // /home/bartushk/Desktop/antlr/LogoTurtle.g:141:20: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    if ( cnt13 >= 1 ) break loop13;
                        EarlyExitException eee =
                            new EarlyExitException(13, input);
                        throw eee;
                }
                cnt13++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FLOAT"

    // $ANTLR start "ADD"
    public final void mADD() throws RecognitionException {
        try {
            int _type = ADD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:143:5: ( '+' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:143:7: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ADD"

    // $ANTLR start "SUB"
    public final void mSUB() throws RecognitionException {
        try {
            int _type = SUB;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:145:5: ( '-' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:145:7: '-'
            {
            match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SUB"

    // $ANTLR start "MUL"
    public final void mMUL() throws RecognitionException {
        try {
            int _type = MUL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:147:5: ( '*' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:147:7: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MUL"

    // $ANTLR start "DIV"
    public final void mDIV() throws RecognitionException {
        try {
            int _type = DIV;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:149:5: ( '/' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:149:7: '/'
            {
            match('/'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DIV"

    // $ANTLR start "COMPOP"
    public final void mCOMPOP() throws RecognitionException {
        try {
            int _type = COMPOP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:151:8: ( '>' | '<' | '>=' | '<=' | '+' | '=' )
            int alt14=6;
            switch ( input.LA(1) ) {
            case '>':
                {
                int LA14_1 = input.LA(2);

                if ( (LA14_1=='=') ) {
                    alt14=3;
                }
                else {
                    alt14=1;}
                }
                break;
            case '<':
                {
                int LA14_2 = input.LA(2);

                if ( (LA14_2=='=') ) {
                    alt14=4;
                }
                else {
                    alt14=2;}
                }
                break;
            case '+':
                {
                alt14=5;
                }
                break;
            case '=':
                {
                alt14=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;
            }

            switch (alt14) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:151:10: '>'
                    {
                    match('>'); 

                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:151:14: '<'
                    {
                    match('<'); 

                    }
                    break;
                case 3 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:151:18: '>='
                    {
                    match(">="); 


                    }
                    break;
                case 4 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:151:23: '<='
                    {
                    match("<="); 


                    }
                    break;
                case 5 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:151:28: '+'
                    {
                    match('+'); 

                    }
                    break;
                case 6 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:151:32: '='
                    {
                    match('='); 

                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMPOP"

    // $ANTLR start "REFOP"
    public final void mREFOP() throws RecognitionException {
        try {
            int _type = REFOP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:153:7: ( '\"' | ':' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:
            {
            if ( input.LA(1)=='\"'||input.LA(1)==':' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "REFOP"

    // $ANTLR start "NEWLINE"
    public final void mNEWLINE() throws RecognitionException {
        try {
            int _type = NEWLINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:155:9: ( '\\n' | '\\r' )
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0=='\n') ) {
                alt15=1;
            }
            else if ( (LA15_0=='\r') ) {
                alt15=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;
            }
            switch (alt15) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:155:11: '\\n'
                    {
                    match('\n'); 

                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:155:16: '\\r'
                    {
                    match('\r'); 
                    _channel = HIDDEN;

                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NEWLINE"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:157:4: ( ( ' ' | '\\t' ) )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:157:6: ( ' ' | '\\t' )
            {
            if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            _channel = HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WS"

    // $ANTLR start "LETTER"
    public final void mLETTER() throws RecognitionException {
        try {
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:160:2: ( ( 'a' .. 'z' ) | ( 'A' .. 'Z' ) )
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( ((LA16_0>='a' && LA16_0<='z')) ) {
                alt16=1;
            }
            else if ( ((LA16_0>='A' && LA16_0<='Z')) ) {
                alt16=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }
            switch (alt16) {
                case 1 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:160:4: ( 'a' .. 'z' )
                    {
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:160:4: ( 'a' .. 'z' )
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:160:5: 'a' .. 'z'
                    {
                    matchRange('a','z'); 

                    }


                    }
                    break;
                case 2 :
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:160:15: ( 'A' .. 'Z' )
                    {
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:160:15: ( 'A' .. 'Z' )
                    // /home/bartushk/Desktop/antlr/LogoTurtle.g:160:16: 'A' .. 'Z'
                    {
                    matchRange('A','Z'); 

                    }


                    }
                    break;

            }
        }
        finally {
        }
    }
    // $ANTLR end "LETTER"

    // $ANTLR start "DIGIT"
    public final void mDIGIT() throws RecognitionException {
        try {
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:163:2: ( '0' .. '9' )
            // /home/bartushk/Desktop/antlr/LogoTurtle.g:163:4: '0' .. '9'
            {
            matchRange('0','9'); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "DIGIT"

    public void mTokens() throws RecognitionException {
        // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:8: ( T__41 | T__42 | T__43 | T__44 | COMMENT | IFELSE | PENDOWN | PENUP | FORWARD | BACKWARD | LEFT | RIGHT | SETH | SETPOS | CIRCLE | SETPEN | BFILL | EFILL | PRINT | MAKE | WHILESTAT | IFSTAT | MOD | TO | NOT | OUTPUT | END | ID | INT | FLOAT | ADD | SUB | MUL | DIV | COMPOP | REFOP | NEWLINE | WS )
        int alt17=38;
        alt17 = dfa17.predict(input);
        switch (alt17) {
            case 1 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:10: T__41
                {
                mT__41(); 

                }
                break;
            case 2 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:16: T__42
                {
                mT__42(); 

                }
                break;
            case 3 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:22: T__43
                {
                mT__43(); 

                }
                break;
            case 4 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:28: T__44
                {
                mT__44(); 

                }
                break;
            case 5 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:34: COMMENT
                {
                mCOMMENT(); 

                }
                break;
            case 6 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:42: IFELSE
                {
                mIFELSE(); 

                }
                break;
            case 7 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:49: PENDOWN
                {
                mPENDOWN(); 

                }
                break;
            case 8 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:57: PENUP
                {
                mPENUP(); 

                }
                break;
            case 9 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:63: FORWARD
                {
                mFORWARD(); 

                }
                break;
            case 10 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:71: BACKWARD
                {
                mBACKWARD(); 

                }
                break;
            case 11 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:80: LEFT
                {
                mLEFT(); 

                }
                break;
            case 12 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:85: RIGHT
                {
                mRIGHT(); 

                }
                break;
            case 13 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:91: SETH
                {
                mSETH(); 

                }
                break;
            case 14 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:96: SETPOS
                {
                mSETPOS(); 

                }
                break;
            case 15 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:103: CIRCLE
                {
                mCIRCLE(); 

                }
                break;
            case 16 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:110: SETPEN
                {
                mSETPEN(); 

                }
                break;
            case 17 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:117: BFILL
                {
                mBFILL(); 

                }
                break;
            case 18 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:123: EFILL
                {
                mEFILL(); 

                }
                break;
            case 19 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:129: PRINT
                {
                mPRINT(); 

                }
                break;
            case 20 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:135: MAKE
                {
                mMAKE(); 

                }
                break;
            case 21 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:140: WHILESTAT
                {
                mWHILESTAT(); 

                }
                break;
            case 22 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:150: IFSTAT
                {
                mIFSTAT(); 

                }
                break;
            case 23 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:157: MOD
                {
                mMOD(); 

                }
                break;
            case 24 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:161: TO
                {
                mTO(); 

                }
                break;
            case 25 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:164: NOT
                {
                mNOT(); 

                }
                break;
            case 26 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:168: OUTPUT
                {
                mOUTPUT(); 

                }
                break;
            case 27 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:175: END
                {
                mEND(); 

                }
                break;
            case 28 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:179: ID
                {
                mID(); 

                }
                break;
            case 29 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:182: INT
                {
                mINT(); 

                }
                break;
            case 30 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:186: FLOAT
                {
                mFLOAT(); 

                }
                break;
            case 31 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:192: ADD
                {
                mADD(); 

                }
                break;
            case 32 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:196: SUB
                {
                mSUB(); 

                }
                break;
            case 33 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:200: MUL
                {
                mMUL(); 

                }
                break;
            case 34 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:204: DIV
                {
                mDIV(); 

                }
                break;
            case 35 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:208: COMPOP
                {
                mCOMPOP(); 

                }
                break;
            case 36 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:215: REFOP
                {
                mREFOP(); 

                }
                break;
            case 37 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:221: NEWLINE
                {
                mNEWLINE(); 

                }
                break;
            case 38 :
                // /home/bartushk/Desktop/antlr/LogoTurtle.g:1:229: WS
                {
                mWS(); 

                }
                break;

        }

    }


    protected DFA17 dfa17 = new DFA17(this);
    static final String DFA17_eotS =
        "\6\uffff\16\24\1\uffff\1\65\10\uffff\1\71\1\24\1\73\1\74\2\24\1"+
        "\77\1\24\1\101\2\24\1\104\1\24\1\106\6\24\1\115\2\24\3\uffff\1\24"+
        "\1\uffff\1\24\2\uffff\2\24\1\uffff\1\24\1\uffff\2\24\1\uffff\1\24"+
        "\1\uffff\2\24\1\135\3\24\1\uffff\1\141\6\24\1\101\1\24\1\104\1\24"+
        "\1\153\3\24\1\uffff\1\160\2\24\1\uffff\3\24\1\74\1\166\2\24\1\106"+
        "\1\24\1\uffff\4\24\1\uffff\1\24\1\177\1\24\1\u0081\1\24\1\uffff"+
        "\3\24\1\u0086\1\24\1\u0088\1\24\1\u008a\1\uffff\1\u008b\1\uffff"+
        "\1\73\1\77\2\24\1\uffff\1\24\1\uffff\1\u008f\2\uffff\3\24\1\uffff"+
        "\1\u0093\2\24\1\uffff\1\153\1\24\1\u0097\1\uffff";
    static final String DFA17_eofS =
        "\u0098\uffff";
    static final String DFA17_minS =
        "\1\11\5\uffff\1\146\2\144\1\141\1\145\1\151\1\145\1\151\1\156\1"+
        "\141\1\150\2\157\1\165\1\uffff\1\56\10\uffff\1\60\1\156\2\60\1\151"+
        "\1\162\1\60\1\143\1\60\1\147\1\146\1\60\1\147\1\60\1\164\1\162\1"+
        "\144\1\153\1\144\1\151\1\60\2\164\3\uffff\1\154\1\uffff\1\144\2"+
        "\uffff\1\156\1\167\1\uffff\1\153\1\uffff\1\151\1\164\1\uffff\1\150"+
        "\1\uffff\1\150\1\143\1\60\1\145\1\165\1\154\1\uffff\1\60\1\160\1"+
        "\163\1\157\1\160\1\164\1\141\1\60\1\156\1\60\1\164\1\60\1\145\1"+
        "\154\1\151\1\uffff\1\60\1\154\1\145\1\uffff\1\165\1\145\1\167\2"+
        "\60\1\162\1\146\1\60\1\141\1\uffff\1\163\1\156\1\145\1\154\1\uffff"+
        "\1\157\1\60\1\164\1\60\1\156\1\uffff\1\144\1\151\1\144\1\60\1\143"+
        "\1\60\1\154\1\60\1\uffff\1\60\1\uffff\2\60\1\154\1\151\1\uffff\1"+
        "\157\1\uffff\1\60\2\uffff\1\154\1\156\1\154\1\uffff\1\60\1\147\1"+
        "\157\1\uffff\1\60\1\162\1\60\1\uffff";
    static final String DFA17_maxS =
        "\1\172\5\uffff\1\146\1\165\1\157\1\153\2\164\1\145\1\151\1\156\1"+
        "\157\1\150\2\157\1\165\1\uffff\1\71\10\uffff\1\172\1\156\2\172\1"+
        "\151\1\162\1\172\1\143\1\172\1\147\1\146\1\172\1\147\1\172\1\164"+
        "\1\162\1\144\1\153\1\144\1\151\1\172\2\164\3\uffff\1\154\1\uffff"+
        "\1\165\2\uffff\1\156\1\167\1\uffff\1\153\1\uffff\1\151\1\164\1\uffff"+
        "\1\150\1\uffff\1\160\1\143\1\172\1\145\1\165\1\154\1\uffff\1\172"+
        "\1\160\1\163\1\157\1\160\1\164\1\141\1\172\1\156\1\172\1\164\1\172"+
        "\1\157\1\154\1\151\1\uffff\1\172\1\154\1\145\1\uffff\1\165\1\145"+
        "\1\167\2\172\1\162\1\146\1\172\1\141\1\uffff\1\163\1\156\1\145\1"+
        "\154\1\uffff\1\157\1\172\1\164\1\172\1\156\1\uffff\1\144\1\151\1"+
        "\144\1\172\1\143\1\172\1\154\1\172\1\uffff\1\172\1\uffff\2\172\1"+
        "\154\1\151\1\uffff\1\157\1\uffff\1\172\2\uffff\1\154\1\156\1\154"+
        "\1\uffff\1\172\1\147\1\157\1\uffff\1\172\1\162\1\172\1\uffff";
    static final String DFA17_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\16\uffff\1\34\1\uffff\1\37\1\40\1\41"+
        "\1\42\1\43\1\44\1\45\1\46\27\uffff\1\35\1\36\1\37\1\uffff\1\26\1"+
        "\uffff\1\7\1\10\2\uffff\1\11\1\uffff\1\12\2\uffff\1\13\1\uffff\1"+
        "\14\6\uffff\1\30\17\uffff\1\33\3\uffff\1\31\11\uffff\1\15\4\uffff"+
        "\1\24\5\uffff\1\23\10\uffff\1\25\1\uffff\1\6\4\uffff\1\16\1\uffff"+
        "\1\17\1\uffff\1\27\1\32\3\uffff\1\22\3\uffff\1\21\3\uffff\1\20";
    static final String DFA17_specialS =
        "\u0098\uffff}>";
    static final String[] DFA17_transitionS = {
            "\1\35\1\34\2\uffff\1\34\22\uffff\1\35\1\uffff\1\33\5\uffff\1"+
            "\3\1\4\1\30\1\26\1\uffff\1\27\1\uffff\1\31\12\25\1\33\1\5\3"+
            "\32\2\uffff\32\24\1\1\1\uffff\1\2\1\uffff\1\24\1\uffff\1\24"+
            "\1\11\1\15\1\24\1\16\1\10\2\24\1\6\2\24\1\12\1\17\1\22\1\23"+
            "\1\7\1\24\1\13\1\14\1\21\2\24\1\20\3\24",
            "",
            "",
            "",
            "",
            "",
            "\1\36",
            "\1\40\1\37\14\uffff\1\42\2\uffff\1\41",
            "\1\44\12\uffff\1\43",
            "\1\45\3\uffff\1\47\5\uffff\1\46",
            "\1\50\16\uffff\1\51",
            "\1\52\12\uffff\1\53",
            "\1\54",
            "\1\55",
            "\1\56",
            "\1\57\15\uffff\1\60",
            "\1\61",
            "\1\62",
            "\1\63",
            "\1\64",
            "",
            "\1\66\1\uffff\12\25",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\4\24\1\70\25\24",
            "\1\72",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\75",
            "\1\76",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\100",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\102",
            "\1\103",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\105",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\107",
            "\1\110",
            "\1\111",
            "\1\112",
            "\1\113",
            "\1\114",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\116",
            "\1\117",
            "",
            "",
            "",
            "\1\120",
            "",
            "\1\121\20\uffff\1\122",
            "",
            "",
            "\1\123",
            "\1\124",
            "",
            "\1\125",
            "",
            "\1\126",
            "\1\127",
            "",
            "\1\130",
            "",
            "\1\131\7\uffff\1\132",
            "\1\133",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\5\24\1\134\24\24",
            "\1\136",
            "\1\137",
            "\1\140",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\142",
            "\1\143",
            "\1\144",
            "\1\145",
            "\1\146",
            "\1\147",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\150",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\151",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\4\24\1\152\25\24",
            "\1\155\11\uffff\1\154",
            "\1\156",
            "\1\157",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\161",
            "\1\162",
            "",
            "\1\163",
            "\1\164",
            "\1\165",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\167",
            "\1\170",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\171",
            "",
            "\1\172",
            "\1\173",
            "\1\174",
            "\1\175",
            "",
            "\1\176",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\u0080",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\u0082",
            "",
            "\1\u0083",
            "\1\u0084",
            "\1\u0085",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\u0087",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\u0089",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\u008c",
            "\1\u008d",
            "",
            "\1\u008e",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "",
            "",
            "\1\u0090",
            "\1\u0091",
            "\1\u0092",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\u0094",
            "\1\u0095",
            "",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            "\1\u0096",
            "\12\24\7\uffff\32\24\4\uffff\1\24\1\uffff\32\24",
            ""
    };

    static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
    static final short[] DFA17_eof = DFA.unpackEncodedString(DFA17_eofS);
    static final char[] DFA17_min = DFA.unpackEncodedStringToUnsignedChars(DFA17_minS);
    static final char[] DFA17_max = DFA.unpackEncodedStringToUnsignedChars(DFA17_maxS);
    static final short[] DFA17_accept = DFA.unpackEncodedString(DFA17_acceptS);
    static final short[] DFA17_special = DFA.unpackEncodedString(DFA17_specialS);
    static final short[][] DFA17_transition;

    static {
        int numStates = DFA17_transitionS.length;
        DFA17_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA17_transition[i] = DFA.unpackEncodedString(DFA17_transitionS[i]);
        }
    }

    class DFA17 extends DFA {

        public DFA17(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 17;
            this.eot = DFA17_eot;
            this.eof = DFA17_eof;
            this.min = DFA17_min;
            this.max = DFA17_max;
            this.accept = DFA17_accept;
            this.special = DFA17_special;
            this.transition = DFA17_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( T__41 | T__42 | T__43 | T__44 | COMMENT | IFELSE | PENDOWN | PENUP | FORWARD | BACKWARD | LEFT | RIGHT | SETH | SETPOS | CIRCLE | SETPEN | BFILL | EFILL | PRINT | MAKE | WHILESTAT | IFSTAT | MOD | TO | NOT | OUTPUT | END | ID | INT | FLOAT | ADD | SUB | MUL | DIV | COMPOP | REFOP | NEWLINE | WS );";
        }
    }
 

}